#pragma once

#include "Tragedy.h"

class TragedyFactory
{
public:
	virtual ~TragedyFactory() {};
	virtual Tragedy* CreateTragedy() = 0;
protected:
	TragedyFactory() {};
private:
};

class CupFactory : public TragedyFactory
{
public:
	static CupFactory* Instance();
	Tragedy* CreateTragedy();
protected:
	CupFactory();
private:
	static CupFactory* _instance;
};

class GlassFacotry : public TragedyFactory
{
public:
	static GlassFacotry* Instance();
	Tragedy* CreateTragedy();
protected:
	GlassFacotry();
private:
	static GlassFacotry* _instance;
};